package com.whmall.service.crm.module.invoice.service.impl;

import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.StrUtil;
import com.whmall.service.crm.entity.dto.invoice.OverseasLoanCompanyAddReqDTO;
import com.whmall.service.crm.entity.dto.invoice.OverseasLoanCompanyQueryReqDTO;
import com.whmall.service.crm.entity.dto.invoice.OverseasLoanCompanyUpdateReqDTO;
import org.springframework.stereotype.Component;

@Component
public class OverseasLoanCompanyValidator {

    /**
     * 针对前端参数 处理
     * @param reqDTO
     */
    public OverseasLoanCompanyQueryReqDTO validateQuery(OverseasLoanCompanyQueryReqDTO reqDTO) {

        if (StrUtil.isEmpty(reqDTO.getName())){
            reqDTO.setName(null);
        }
        return reqDTO;
    }

    public void validateAdd(OverseasLoanCompanyAddReqDTO reqDTO) {

        if (reqDTO == null){
            throw new IllegalArgumentException("请求参数异常");
        }

        if (StrUtil.isEmpty(reqDTO.getName())){
            throw new IllegalArgumentException("公司名称不能为空");
        }

        if (StrUtil.isEmpty(reqDTO.getNameEn())){
            throw new IllegalArgumentException("公司英文名称不能为空");
        }

        if (StrUtil.isEmpty(reqDTO.getRecipientName())){
            throw new IllegalArgumentException("收件人名称不能为空");
        }

        if (StrUtil.isEmpty(reqDTO.getRecipientPhone()) && Validator.isMobile(reqDTO.getRecipientPhone())){
            throw new IllegalArgumentException("收件人电话不符合格式");
        }

        if (reqDTO.getProvince() == null || reqDTO.getCity() == null || reqDTO.getDistrict() == null){
            throw new IllegalArgumentException("省市区不能为空");
        }

        if (StrUtil.isEmpty(reqDTO.getAddress())){
            throw new IllegalArgumentException("详细地址不能为空");
        }

    }

    public void validateUpdate(OverseasLoanCompanyUpdateReqDTO reqDTO) {

        if (reqDTO == null){
            throw new IllegalArgumentException("请求参数异常");
        }

        if (reqDTO.getId() == null){
            throw new IllegalArgumentException("请求参数ID不能为空");
        }


        if (StrUtil.isEmpty(reqDTO.getName())){
            throw new IllegalArgumentException("公司名称不能为空");
        }

        if (StrUtil.isEmpty(reqDTO.getNameEn())){
            throw new IllegalArgumentException("公司英文名称不能为空");
        }

        if (StrUtil.isEmpty(reqDTO.getRecipientName())){
            throw new IllegalArgumentException("收件人名称不能为空");
        }

        if (StrUtil.isEmpty(reqDTO.getRecipientPhone()) && Validator.isMobile(reqDTO.getRecipientPhone())){
            throw new IllegalArgumentException("收件人电话不符合格式");
        }

        if (reqDTO.getProvince() == null || reqDTO.getCity() == null || reqDTO.getDistrict() == null){
            throw new IllegalArgumentException("省市区不能为空");
        }

        if (StrUtil.isEmpty(reqDTO.getAddress())){
            throw new IllegalArgumentException("详细地址不能为空");
        }

    }


}
